ALB のログ出力先 S3 バケットの暗号化方式を SSE-KMS に変更することは可能でしょうか
困っていること
ALB のアクセスログを SSE-S3 にて暗号化している S3 バケットに出力しています。
この S3 バケットの暗号化方式を SSE-KMS に変更したいと考えているのですが、問題ありませんでしょうか。
ドキュメントには ALB のアクセスログは SSE-S3 しかサポートされていない旨の記載がありますが、当該バケットの設定を SSE-KMS に変更すること自体はできそうだったので、その場合の影響を確認したいと考えています。
どう対応すればいいの?
いいえ、ドキュメントに記載の通り、ALB のアクセスログの出力先として指定している S3 バケットにてサポートされている暗号化方式は SSE-S3 のみとなります。[1]
出力先バケットの暗号化方式を SSE-KMS へ変更すること自体は出来てしまいますが、変更した場合でも ALB のアクセスログが SSE-KMS にて暗号化されることはありません。
サポートされるサーバー側の暗号化オプションは、Amazon S3-managedされるキー (SSE-S3) のみです。詳細については、「Amazon S3-managedSSE-S3」を参照してください。
やってみた
ALB のアクセスログ出力先に指定した S3 バケットの暗号化方式を SSE-KMS に変更して、挙動確認してみたいと思います。
現状は以下の通りの設定で ALB のログを SSE-S3 で暗号化した S3 に出力しています。
この状態から S3 の暗号化方式を SSE-KMS に変更します。
特にエラーもなく設定変更できました。
ログを出力するために、ALB のエンドポイントにアクセスします。
なお、ターゲットには Nginx をインストールした EC2 を利用しています。
S3 バケット側にログが出力されることが確認できました。
中身も問題なく参照できる状態です。
http 2025-01-14T01:35:55.456778Z app/oishi-test-alb/742704c60acb9df1 XXX.XXX.XXX.XXX:62693 10.0.0.34:80 0.002 0.002 0.000 200 200 481 853 "GET http://oishi-test-alb-715016072.ap-northeast-1.elb.amazonaws.com:80/ HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" - - arn:aws:elasticloadbalancing:ap-northeast-1:XXXXXXXXXXXX:targetgroup/oishi-tg-instance/9cd63abc234885ea "Root=1-6785bf7b-4d4515f216024d8010921547" "-" "-" 0 2025-01-14T01:35:55.452000Z "forward" "-" "-" "10.0.0.34:80" "200" "-" "-" TID_75a1a2f02a9d0e4aaa5af5872e132b04
挙動的には ALB のログに SSE-KMS での暗号化を適用できているように感じますが、オブジェクトのプロパティ情報を確認すると、出力されたログファイルが SSE-KMS ではなく、引き続き SSE-S3 にて暗号化されていることがわかります。
念のため、S3 の暗号化キーとして指定している KMS キーを無効化した上で、ログファイルにアクセスしてみたいと思います。
もし ALB のログが SSE-KMS にて暗号化されている場合は、使用している KMS キーを無効化した時点でアクセスできなくなるはずです。
しかしながら、KMS キー無効化後も引き続きくファイルにアクセスでき、中身も参照することが可能でした。
このことからも ALB のアクセスログには SSE-KMS による暗号化が適用されないことがわかります。